開啟Pycharm新專案:
1.1 點擊New Project開啟新專案
1.2 點擊New enviroment using,選擇Vitualenv後輸入專案名稱,再點擊Create。
到Github下載Megvii-BaseDetection/YOLOX tag 0.2.0
解壓縮後將YOLOX-main資料夾移動到Pycharm專案資料夾內,並更名為YOLOX。
在Pycharm內點選Terminal,並依序輸入以下指令
4.1 進入YOLOX資料夾:cd .\YOLOX\
4.2 安裝需求套件:pip install -r requirements.txt
4.3 安裝tensorboard:pip install tensorboard
4.4 安裝CUDA與Torch
pip install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio===0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
4.5 部署YOLOX環境:python setup.py develop
setup成功
setup失敗
若提示No CUDA runtime is found, using CUDA_HOME='C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2'
,可以嘗試其他版本的「CUDA與Torch」。
可嘗試Torch官網的安裝指令:pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
預訓練模型YOLOX-s權重
1.1 下載預訓練模型YOLOX-s權重
1.2 放到YOLOX資料夾,用以執行demo.py測試是否部署環境成功。
將assets資料夾內的dog照片複製成8張,可測試單張及多張照片的GPU推論速度。
在Terminal輸入推論指令
3.1 單張照片gpu推論:python tools/demo.py image -f exps/default/yolox_s.py -c yolox_s.pth --path assets/dog1.jpg --conf 0.25 --nms 0.45 --tsize 640 --save_result --device gpu
執行結果:載入模型+1張圖片推論,花費了1.8655秒。
推論結果
3.2 多張照片gpu推論:python tools/demo.py image -f exps/default/yolox_s.py -c yolox_s.pth --path assets/ --conf 0.25 --nms 0.45 --tsize 640 --save_result --device gpu
執行結果
推論結果
3.3 參數說明
COCO格式訓練
1.1 資料集下載
將coco128資料集解壓縮,並移到YOLOX下的datasets資料夾內。
資料集結構如下圖。
1.2 下載預訓練模型YOLOX-s權重,並放到YOLOX資料夾內。
1.3 yolox-s.py參數檔
開啟yolox-s.py:./YOLOX/exps/example/custom/yolox-s.py
確認參數是否正確。
# 資料集與COCO格式標籤路徑
self.data_dir = "datasets/coco128"
self.train_ann = "instances_train2017.json"
self.val_ann = "instances_val2017.json"
# 資料集類別數量(coco128有71個類別)
self.num_classes = 71
# 模型迭代次數
self.max_epoch = 300
# 影響資料前處理速度,通常使用4或8
self.data_num_workers = 4
1.4 coco_classes.py:將COCO_CLASSES = ( ) 中的類別,修改成coco128的71個類別。
1.3 執行訓練:python tools/train.py -f exps/example/custom/yolox_s.py -d 0 -b 16 --fp16 -o -c yolox_s.pth
1.4 Demo測試:python tools/demo.py image -f exps/example/custom/yolox_s.py -c YOLOX_outputs/coco128/best_ckpt.pth --path assets/ --conf 0.25 --nms 0.5 --tsize 640 --save_result --device gpu
Using C:\Users\88691\AppData\Local\torch_extensions\torch_extensions\Cache\py37_cu113 as PyTorch extensions root...
C:\Users\88691\PycharmProjects\YOLOX\venv\lib\site-packages\torch\utils\cpp_extension.py:316: UserWarning: Error checking compiler version for cl: [WinError 2] 系統找不到指定的檔案。
warnings.warn(f'Error checking compiler version for {compiler}: {error}')
Emitting ninja build file C:\Users\88691\AppData\Local\torch_extensions\torch_extensions\Cache\py37_cu113\fast_cocoeval\build.ninja...
資訊: 找不到提供模式的檔案。
異常訊息
yolox/evaluators/coco_evaluator.py修改前
try:
from yolox.layers import COCOeval_opt as COCOeval
except ImportError:
from pycocotools.cocoeval import COCOeval
yolox/evaluators/coco_evaluator.py修改後
from pycocotools.cocoeval import COCOeval
修改後,直接從pycocotools套件中呼叫COCOeval,跳過異常階段順利計算AP。
另外一個可能解決方法
下一站,我們前往「YOLOv7本地端訓練(Windows)」,分享如何設置YOLOv7環境,並進行訓練與推論。
讓我們繼續看下去...